package model

import "github.com/gogf/gf/v2/os/gtime"

type LessonUserLoginInput struct {
	Phone    string
	Password string
}

type LessonUserRegisterInput struct {
	Phone    string
	Password string
	Name     string
}

type LessonUserDetail struct {
	Id        uint64      `json:"id"         orm:"id"         ` //
	Phone     string      `json:"phone"      orm:"phone"      ` // 手机号
	Name      string      `json:"name"       orm:"name"       ` // 姓名
	Avatar    string      `json:"avatar"     orm:"avatar"     ` // 头像
	Ip        string      `json:"ip"         orm:"ip"         ` // 最后登录IP地址
	LoginAt   *gtime.Time `json:"login_at"   orm:"login_at"   ` // 最后登录时间
	CreatedAt *gtime.Time `json:"created_at" orm:"created_at" ` // 创建时间
}

type LessonCategoryCreateInput struct {
	ParentId int64
	Name     string
	Code     string
	Cover    string
	Remark   string
}

type LessonCategoryUpdateInput struct {
	ParentId int64
	Name     string
	Code     string
	Cover    string
	Remark   string
}

type LessonCategoryListInput struct {
	Page     int
	PageSize int
	Name     string
}
type LessonCategoryListItem struct {
	Id           uint64                      `json:"id"         orm:"id"         `   //
	ParentId     uint64                      `json:"parent_id"  orm:"parent_id"  `   // 上级ID
	Name         string                      `json:"name"       orm:"name"       `   // 配置项分类名称
	Code         string                      `json:"code"       orm:"code"       `   // 配置项分类标识符
	Cover        string                      `json:"cover"       orm:"cover"       ` // 配置项分类封面
	Remark       string                      `json:"remark" orm:"remark"`            //配置项分类备注
	CreatedBy    uint64                      `json:"created_by" orm:"created_by" `   // 创建人
	UpdatedBy    uint64                      `json:"updated_by" orm:"updated_by" `   // 更新人
	CreatedAt    *gtime.Time                 `json:"created_at" orm:"created_at" `   // 创建时间
	UpdatedAt    *gtime.Time                 `json:"updated_at" orm:"updated_at" `   // 更新时间
	CreatedAdmin LessonCategoryAdminUserItem `json:"created_admin"`
	UpdatedAdmin LessonCategoryAdminUserItem `json:"updated_admin"`
	Children     []LessonCategoryListItem    `json:"children"`
}

type LessonCategoryAdminUserItem struct {
	Id       uint64 `json:"id"`
	Username string `json:"username"`
	Name     string `json:"name"`
	Avatar   string `json:"avatar"`
}
type LessonUserListInput struct {
	Page     int
	PageSize int
}
type LessonUserListItem struct {
	Id        uint64      `json:"id"         orm:"id"         ` //
	Phone     string      `json:"phone"      orm:"phone"      ` // 手机号
	Name      string      `json:"name"       orm:"name"       ` // 姓名
	Avatar    string      `json:"avatar"     orm:"avatar"     ` // 头像
	Token     string      `json:"token"      orm:"token"      ` // 授权token
	Ip        string      `json:"ip"         orm:"ip"         ` // 最后登录IP地址
	LoginAt   *gtime.Time `json:"login_at"   orm:"login_at"   ` // 最后登录时间
	CreatedAt *gtime.Time `json:"created_at" orm:"created_at" ` // 创建时间
	UpdatedAt *gtime.Time `json:"updated_at" orm:"updated_at" ` // 更新时间
}

type LessonArticleListItem struct {
	Id           uint64                    `json:"id"          orm:"id"          ` //
	CategoryId   int64                     `json:"category_id" orm:"category_id" ` // 文件分类
	Title        string                    `json:"title"       orm:"title"       ` // 标题
	Summary      string                    `json:"summary"     orm:"summary"     ` // 简介
	ZhContent    string                    `json:"zh_content"  orm:"zh_content"  ` // 中文内容
	EnContent    string                    `json:"en_content"  orm:"en_content"  ` // 英文内容
	CreatedBy    uint64                    `json:"created_by"  orm:"created_by"  ` // 创建人
	UpdatedBy    uint64                    `json:"updated_by"  orm:"updated_by"  ` // 更新人
	DeletedBy    uint64                    `json:"deleted_by"  orm:"deleted_by"  ` // 删除人
	CreatedAt    *gtime.Time               `json:"created_at"  orm:"created_at"  ` // 创建时间
	UpdatedAt    *gtime.Time               `json:"updated_at"  orm:"updated_at"  ` // 更新时间
	DeletedAt    *gtime.Time               `json:"deleted_at"  orm:"deleted_at"  ` // 删除时间
	CategoryInfo LessonCategoryInfo        `json:"category_info"`
	CreatedAdmin SystemConfigAdminUserItem `json:"created_admin"`
	UpdatedAdmin SystemConfigAdminUserItem `json:"updated_admin"`
}

type LessonCategoryInfo struct {
	Id   uint64 `json:"id"`
	Name string `json:"name"`
}
